Identification of text

ABSTRACT

A method of generating a code representative of a passage of text uses in the preferred embodiment the character spacing between respective occurrences of a selected key symbol string within the text. The string may be fixed, or may encompass a variety of different forms. By comparing the known code of a target text passage with the code generated from a sample text passage, it is easy to determine whether the target text has been used within the sample. The method may be integrated within a copying device such as a photocopier, allowing the device report automatically whenever a user attempts to copy a document bearing one of a predefined list of sensitive or controlled text passages.

CROSS-REFERENCE TO RELATED APPLICATION

None.

TECHNICAL FIELD

The present invention relates to the identification of text. In a preferred embodiment, it provides a mechanism in which a block of text may be quickly and easily checked to confirm the existence or absence within it of a target text passage.

BACKGROUND OF THE INVENTION

In recent years it has become more and more difficult for the author or copyright owner of a passage of text to control what happens to that text once it has been released into the public domain. If the text is released in electronic format, it can be repeatedly copied and distributed across the Internet in seconds. Even if it is released only in hardcopy, it is a trivial matter for a third party to copy or scan the relevant page and then to use optical recognition (OCR) technology to generate an electronic version.

There are a variety of circumstances where the need arises to detect when a particular passage of text has been copied. First, if the text passage is copyright protected, the copyright owner may legitimately wish to know who is making unlawful copies of the passage; alternatively, the copyright owner may be interested to know how many times an authorised licensee has made a copy, so that license royalties may be calculated. Second, there is a need to detect plagiarism, especially amongst students who may copy passages of text from the Internet, and pass them off their own work. Thirdly, there is the security field in which, for reasons of national security or otherwise, government agencies may wish to restrict or prohibit the copying of certain secret documents.

In all of these scenarios, it would be desirable to detect not only electronic copying, but also the copying of physical printed documents, for example by scanning or photocopying.

SUMMARY OF THE INVENTION

According to the present invention, there is provided a method of generating a code representative of a passage of text comprising identifying within the passage positions at which a key symbol string occurs, determining distances between selected occurrences and generating a code including said distances.

According to a second aspect of the invention, there is provided a method of determining whether a target passage of text occurs within a sample passage, the method comprising:

-   -   (a) generating, using a method as claimed in any one of claims 1         to 11, a target code representative of the target passage and a         sample code representative of the sample passage;     -   (b) comparing the target code with portions of the sample code;         and,     -   (c) if the target code and a portion of the sample code match,         according to required matching criteria, determining that the         target passage of text does occur within the sample passage.

The invention extends to a copying device, for example a scanner, photocopier, camera or digital imager which includes suitable onboard processing to generate and manipulate codes as described above.

In particular, the invention extends to a copying device for making physical or electronic copies of a physical document bearing text, the device comprising:

-   -   (a) an imager for generating an image of the physical document;     -   (b) an OCR engine for converting said text into sample text in         electronic form;     -   (c) an analyser for generating from said sample text a sample         code, said code including distances between selected occurrences         within the sample text of a key symbol string; said analyser         recessing a plurality of pre-computed target codes         representative of target text passages of interest, comparing         the target codes with portions of the sample code, and if the         target code and a portion of the sample code match according to         required matching criteria, generating a signal indicating the         matching target text passage; and,     -   (d) a controller for receiving said signal and for taking action         in dependence upon said signal.

The invention further extends to any and all of the following:

A method of forming a code indicative of a passage of text whereby:

-   -   (i) The positions of occurrence of one or more key symbol         strings is identified in the text,     -   (ii) The distances between the positions of selected occurrences         of key symbols strings is determined, and,     -   (iii) A code is formed including one or more distances between         key symbol strings.

A method as above where each key string is one chosen symbol.

A method as above in which the code comprises one or more symbols indicative of a key symbol string combined with one or more distances between one or more first chosen occurrences and one or more second chosen occurrences separated by a chosen number of other occurrences.

A method as above where there is only one key string.

A method as above where the code comprises one or more distances between one or more first chosen occurrences and one or more second chosen occurrences separated by a chosen number of other occurrences.

A method as above where the separation of occurrences is fixed.

A method as above in which the separation is varying according to some predetermined pattern.

A method as above in which the separation is computed.

DESCRIPTION OF THE DRAWINGS

The invention may be carried into practice in a number of ways, and several specific embodiments will now be described, by way of example, with reference to the accompanying drawings, in which:

FIG. 1 shows an exemplary method for creating a code from a passage of text according to one embodiment of the present invention; and,

FIG. 2 shows a copying device in accordance with another embodiment of the invention which can automatically detect when a given text passage has been copied.

DETAILED DESCRIPTION

The preferred procedure for creating a code indicative or representative of a passage of text 5 is illustrated schematically in FIG. 1. If the passage is not already in electronic format, it should first be scanned or otherwise copied and optical character recognition (OCR) applied.

First, a key symbol string is decided upon, this being one or more character strings which are going to be sought within the document. In the example of FIG. 1, a single key symbol string is used, namely the letter “x,” Starting at the beginning 10 of the passage, one then searches through sequentially and notes each occurrence of the selected key symbol string. In the example shown, the first occurrence of the string “x” occurs in the 5^(th) character position after the start, as is indicated by the reference numeral 20. The letter “x” next occurs nine character spaces further on, as is indicated by the reference numeral 30.

As will be seen in the Figure, the block of text under consideration is treated as one long continuous string so that the character spacing between one key symbol string and the next is not affected by the way in which the text is laid out on the page: aside from one or two exceptions (described more fully below) the page layout is typically ignored.

Continuing with the example, the next letter “x” occurs five characters after the preceding one, as shown by reference numeral 40. Subsequent character spacings are 17, 3, 3, as respectively shown by the reference numerals 50, 60, 70.

Once the block of text has been fully parsed in this way down to the end 100, a code which is representative of the text is generated by combining details of the key symbol string or strings in use and a list made up of the character spacings between respective strings. The detailed structure of the code itself may be chosen according to the particular application in hand, but it may, for example, consist of a header portion which defines the string or strings, followed by the list of spacings. Using that approach, the text in FIG. 1 may be represented by the following code: X: 5, 9, 5, 17, 3, 3 . . .

Typically, the distance measure will be the number of letters, symbols or other characters between the key symbol strings. The distance measure may also include single and/or multiple character spaces, or alternatively the presence or absence of spaces could be ignored.

More complex distance metrics are also envisaged, which may, if desired, make use of the way the text is presented on the page, including the way that the text may be laid out line by line. A variety of different metrics are envisaged in which, for example, the distance between symbols may depend not only upon the number of intermediate characters, but also whether the two symbols lie on the same line or different lines. If they lie on different lines, the number of lines in between could also be taken into consideration.

Given the text layout of FIG. 1, one could decide, for example, to use a distance metric in which each line break is deemed to be equivalent to a ten character spacing. With such a metric, one needs to add ten characters to the distance 30, and twenty characters to the distance 50, all other distances remaining the same. This gives one a new code: X: 5, 19, 5, 37, 3, 3 . . .

In the simple embodiment of FIG. 1, a single key symbol string is used, namely the letter “x.” In variants of the method, one may look for occurrences of more lengthy and/or complex strings. As described in more detail below, these may either be strings having a fixed, predefined form, or alternatively may be strings which have some inherent flexibility in form, length, and/or composition. The extent of the flexibility may be predefined or it may be calculated in dependence upon some characteristic or characteristics of the passage of text under study. Multiple key symbol strings may also be used: for example, it may be convenient for the string to be defined as either the letter “x” or the letter “q,” without any distinction being made between the two.

Some further exemplary key symbol strings are set out below.

Exemplary Key Symbol Strings

-   -   Any letter, symbol or character a such as “x.” This could in         principle include a single-character space.     -   Any bigraph a₁ a₂ such as “st.”     -   Any combination a₁ a₂ a₃ such as “str.”     -   Any longer combination a₁ a₂ a₃ . . . a_(n) such as “st_(——)ng”         where the underscores represent single character spaces.     -   Any string of the form s₁ ? s₂ where s₁, s₂ are characters or         combinations of characters as above, and ? represents a spacing         of one or more characters which may be fixed or variable.     -   Any string of the form s₁ ? s₂ ? s₃ where s₁, s₂, s₃ are strings         of any type mentioned above, and where the spacings represented         by ? need not be the same.     -   Any string of the form s₁ ? s₂ ? s₃ ? s₄, where, again each ?         may represent a different character spacing, and s₁, s₂, s₃, s₄,         are strings of any of the above types.     -   A string in which two strings s_(s), s_(e) are separated by a         given number of occurrences of a further string s_(f) where the         starting string s_(s) the ending string s_(e) and the further         string s_(f) are all of any of the types mentioned above. These         strings may be the same or different, and the spacings between         them may be fixed or variable.     -   A string in which s_(s) and s_(e) are separated by a selected         number of occurrences of a plurality of further strings s₁, s₂ .         . . s_(n). Again, the respective spacings may be fixed or         variable and the strings may, but need not, all be different.

In order to determine whether a target passage of text is present within a sample passage, respective codes are generated for both passages, using the same criteria, and those codes are then compared. The target passage is determined to exist within the sample passage if a match is identified between the target code and some part of the sample code. The comparison may be made in any convenient way, for example by sliding the list from the target code along the length of the sample code list, and looking for a match at each position. Depending upon the application, an exact match may required, or alternatively it may be sufficient to accept a partial match according to some predefined minimum matching criteria.

FIG. 2 shows how the preferred method of the present invention may be integrated within a copying device, such as a scanner or photocopier. The copying device 210 includes an imager 220 such as a CCD device, scanner or digital imager, the function of which is to capture a digital image of a hard copy document (not shown) bearing a passage of text. An image is passed to a computer processing unit 230, and may also be stored on a local hard disk or other storage means 240. If the copier is to produce physical copies, a printer 255 may be included. The image is passed to an OCR engine 250 which converts the passage into a character string and passes it onto an analyser 260. Where the distance metric in use requires information on the position of line breaks, or other layout information, that information is passed on as well. The analyser processes the passage and creates from it a sample code, using the method described above.

Recorded on the disk drive 240 are a series pre-computed target codes, each being representative of a passage of text the copying of which is to be noted. These should, of course, have been generated by the same algorithm that is being used by the analyser to generate the sample code. The analyser retrieves the stored codes from disk, and compares them (as described above) with the sample code that has been generated from the recently copied document. If a match is found, a controller 265 is instructed to take some appropriate action. That may include, for example, shutting the photocopier down, inhibiting the copying process, generating a visual or audible signal, writing an entry into a log which may then be stored on the disk 240, or sending a message across a network such as the Internet 270 to a remote system 280. The remote system may itself take whatever action is appropriate, including in some applications, raising an automated invoice in respect of the royalties required for photocopying a particular piece of copyright text.

Instead of the target codes being stored within the copier 210 itself, the codes may be stored remotely as shown at 290 with the copier automatically requesting the necessary information across the network whenever a copy is made. 

1. A method of generating a code representative of a passage of text comprising the steps of identifying within the passage positions at which a key symbol string occurs, determining distances between selected occurrences of the key symbol string, and generating a code including said distances.
 2. A method as claimed in claim 1 in which the code includes a plurality of distances corresponding to respective distances between adjacent key symbol strings within the passage.
 3. A method as claimed in claim 1 in which said distances are determined according to the number of characters between said occurrences.
 4. A method as claimed in claim 1 in which said distances are determined according to the number of characters between said occurrences and also according to the number of lines of text between said occurrences.
 5. A method as claimed in claim 1 in which the key symbol string comprises a single fixed string of one or more characters.
 6. A method as claimed in claim 1 in which the key symbol string is variable, and may comprise any one of a plurality of pre-defined fixed strings of one or more characters.
 7. A method as claimed in claim 1 in which the key symbol string comprises a first selected string spaced apart from a second selected string.
 8. A method as claimed in claim 1 in which the said spacing is fixed.
 9. A method as claimed in claim 1 in which the said spacing is variable or computed.
 10. A method as claimed in claim 1 in which the key symbol string comprises a first selected string spaced apart from a second selected string and having, between them, a selected number of occurrences of one or more further strings.
 11. A method as claimed in claim 1 in which said code includes the key symbol string or a definition of how the key symbol string is constructed.
 12. A method of determining whether a target passage of text occurs within a sample passage, the method comprising the steps of: (a) generating by using a submethod a target code representative of the target passage and a sample code representative of the sample passage, the submethod including the steps of identifying within the passage positions at which a key symbol string occurs, determining distances between selected occurrences of the key symbol string, and generating a code including said distances; (b) comparing the target code with portions of the sample code; and, (c) if the target code and a portion of the sample code match, according to required matching criteria, determining that the target passage of text does occur within the sample passage.
 13. A copying device for making physical or electronic copies of a physical document bearing text, the device comprising: (a) an imager for generating an image of the physical document; (b) an OCR engine for converting said text into sample text in electronic form; (c) an analyser for generating from said sample text a sample code, said code including distances between selected occurrences within the sample text of a key symbol string; said analyser receiving a plurality of pre-computed target codes representative of target text passages of interest, comparing the target codes with portions of the sample code, and if the target code and a portion of the sample code match according to required matching criteria, generating a signal indicating the matching target text passage; and, (d) a controller for receiving said signal and for taking action in dependence upon said signal.
 14. A copying device as claimed in claim 13 in which the controller controls operation of the device.
 15. A copying device as claimed in claim 13 in which the controller passes a message to a computer network. 